package com.exception.global.core.util;

import org.springframework.lang.Nullable;
import org.springframework.util.CollectionUtils;

import java.util.Collection;
import java.util.Map;
import java.util.function.Supplier;

/**
 * 集合工具类，参考 org.springframework.util.Assert;
 */
public abstract class CollectionUtil {

    /**
     * 判断集合为空，集合对象为null或者集合元素个数为0
     * @param collection 集合对象
     * @param message 提示消息内容
     */
    public static void isNull(Collection collection, String message) {
        if (!CollectionUtils.isEmpty(collection)) {
            throw new IllegalArgumentException(message);
        }
    }

    /**
     * 判断集合不为空，集合对象不为null且集合元素个数不为0
     * @param collection 集合对象
     * @param message 提示消息内容
     */
    public static void notNull(Collection collection, String message) {
        if (CollectionUtils.isEmpty(collection)) {
            throw new IllegalArgumentException(message);
        }
    }

    /**
     * 断言map为空
     * @param map map对象
     * @param message 提示消息
     */
    public static void isNull(Map<?, ?> map, String message) {
        if (!CollectionUtils.isEmpty(map)) {
            throw new IllegalArgumentException(message);
        }
    }

    /**
     * 断言 map不为空
     * @param map map对象
     * @param message 提示消息
     */
    public static void notNull(Map<?,?> map, String message) {
        if (CollectionUtils.isEmpty(map)) {
            throw new IllegalArgumentException(message);
        }
    }
}
